<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Controller extends CI_Controller {
	private $intance;
	/** Model */
	public $model;
	/** Scripts */
	public $scripts;
	/** Dados do usuário */
	public $userdata;
	/** Dados enviado a view */
    private $_data = array();
	/**
	 * Construtor da classe.
	 * Criar contrutor em todos os controllers que forem criados.
	 * */
	function __construct() {
		parent::__construct();
		$this->intance = get_instance();
		//Recebe instancia do controller e faz tratamento.
		$name_controller = str_replace("Controller", "", get_class($this->intance));
		
		//Idioma
		$lang = "";
		//Caso seja o url padrão que não tenha seggmento não faz a validação do addendum
		if(count($this->intance->uri->segments) > 0) {
			$lang = cur_lang($this->intance->uri->segments[1]);
			/**
			 * Validação do annotations
			 * */
			$validation = new Validations_addendum($this->session, $this->intance, $this->intance->router->method);
			$validation->authorize();			
		}
		
		//Insere model
		$this->load->model(strtolower($name_controller)."_model", "model");
		
		//Define usuários de sessão
		$this->userdata = get_userdata($this->session);
		
		//Retorna arquivos de tradução
		get_translation('Shared', $lang);
		get_translation($name_controller, $lang);
	}

	/**
	 * Add information to view.
	 * @param $key String Name to variable
	 * @param $value Mix Value to variable
	 * */
    protected final function set_data($key, $value) {
        $this->_data[$key] = $value;
    }
	/**
	 * Checks if it's post.
	 * @return boolean TRUE if it's a post, FALSE otherwise.
	 * */
	public function is_post() {
		return ($_SERVER['REQUEST_METHOD'] == 'POST');
	}
	
	/**
	 * Checks if it's ajax
	 * @return boolean TRUE if it's ajax
	 * */
	public function isAjax(){
		return (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
	}
	
	/**
	 * Carrega a view passando os dados por parametro.
	 * Loaaer view
	 * @param $view String Caminho de onde esta a view
	 * @param $data Array Array com as informações que seram passadas para a view.
	 * */
	public function load_view($view, $data = array()) {
		$this->parser->parse(DEFAULT_LAYOUT.'shared/header', $this->_data);
		$this->parser->parse(DEFAULT_LAYOUT.$view, $this->_data);
		$this->load->view(DEFAULT_LAYOUT.'shared/footer');
	}
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */